#!/bin/bash


#
# macOs linux 给命令启用别名
#
ls ~/.ba*
/Users/admin/.bash_profile





cat /Users/admin/.bash_profile
export MAVEN_HOME=/Users/admin/Desktop/file-config/maven/apache-maven-3.3.1
export PATH=$PATH:$MAVEN_HOME/bin





vim ~/.bash_profile





cat ~/.bash_profile
export MAVEN_HOME=/Users/admin/Desktop/file-config/maven/apache-maven-3.3.1
export PATH=$PATH:$MAVEN_HOME/bin
# 别名链接ssh
alias ssh_test="ssh root@192.168.1.10"
alias ssh_test_docker="ssh root@172.68.1.21"
# 指定端口
alias ssh_docker="ssh -p 2222 root@172.68.1.21"



使用别名命令 [配置文件还未生效]
ssh_test
zsh: command not found: ssh_test



# 使配置文件生效 。在命令生效之前，我们需要用source执行一下，刚才编辑好的文件，具体的命令是 source ~/.bash_profile，
source ~/.bash_profile



使用别名命令
ssh_test
root@192.168.1.10's password:在这里输入密码-密文不展示的_如果配置了ssh免密登录那么这里就不会由此提示就直接进入服务器了



# https://www.linuxprobe.com/ssh-use-11.html
# SSH不仅可以用于远程主机登录，还可以直接在远程主机上执行操作。
ssh  -p 2222 user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
# 单引号中间的部分，表示在远程主机上执行的操作；后面的输入重定向，表示数据通过SSH传向远程主机。
# 这就是说，SSH可以在用户和远程主机之间，建立命令和数据的传输通道，因此很多事情都可以通过SSH来完成。



在远程主机运行一个图形界面的程序
使用ssh的-X选项，然后主机就会开启 X11 转发功能
ssh -X feiyu@222.24.51.147

使用ssh在远程主机执行一条命令并显示到本地, 然后继续本地工作
直接连接并在后面加上要执行的命令就可以了
ssh pi@10.42.0.47 ls -l


如何配置 SSH
SSH 的配置文件在 /etc/ssh/sshd_config 中，你可以看到端口号, 空闲超时时间等配置项。

查看是否已经添加了对应主机的密钥
使用-F选项
ssh-keygen -F 222.24.51.147



删除主机密钥
使用-R选项，也可以在~/.ssh/known_hosts文件中手动删除
ssh-keygen -R 222.24.51.147

对所有数据请求压缩
使用 -C 选项，所有通过 SSH 发送或接收的数据将会被压缩，并且任然是加密的。
ssh -C root@192.168.0.103

绑定源地址
如果你的客户端有多于两个以上的 IP 地址，你就不可能分得清楚在使用哪一个 IP 连接到 SSH 服务器。为了解决这种情况，我们可以使用 -b 选项来指定一个IP 地址。这个 IP 将会被使用做建立连接的源地址。
ssh -b 192.168.0.200  root@192.168.0.103


打开调试模式
因为某些原因，我们想要追踪调试我们建立的 SSH 连接情况。SSH 提供的 -v 选项参数正是为此而设的。其可以看到在哪个环节出了问题。
ssh -v root@192.168.0.103








ssh连接到其他端口
SSH 默认连接到目标主机的 22 端口上，可以使用-p选项指定端口号
ssh -p 10022 user@hostname


构建 ssh 密钥对
使用 ssh-keygen -t +算法 ，现在大多数都使用rsa或者dsa算法。
ssh-keygen -t rsa



通过ssh使用私钥PEM登录
https://www.cnblogs.com/jimoliunian/p/12968499.html
https://www.runoob.com/w3cnote/mac-os-ssh-pem.html
在win上面可以使用XSHELL来登录类似于亚马逊这样的安全服务器，在mac上面就可以使用系统自带的命令工具来连接
使用命令
ssh -i key.pem [server]
如下：
ssh -i key.pem root@192.168.1.1
如果登陆不上 则使用云自带的浏览器使用账号密码登陆

这个问题是说这个文件的权限太大了，需要给小点
sudo chmod 600 key.pem


最方便的还是使用ssh-add 添加一下键文件，以后访问方便点
ssh-add -k key.pem

每次电脑重启还需要重新执行添加key的操作
执行完上面的命令后下次就只需要像普通ssh那样访问就可以了，如下：
ssh root@192.168.1.1
ssh -vvv cloud-user@192.168.160.168
可以查看ssh debug日志

另外我们使用的时候经常会有掉线的问题，可以修改以下配置来解决。
登陆服务器：
vim /etc/ssh/sshd_config
找到下面两行：
ClientAliveInterval 0  # 客户端每隔多少秒向服务发送一个心跳数据
ClientAliveCountMax 3  # 客户端多少秒没有相应，服务器自动断掉连接

去掉注释，改成：
ClientAliveInterval 30
ClientAliveCountMax 86400

重启 sshd 服务:
service sshd restart



看known_hosts主机信息
    ls -la ~/.ssh/known_hosts
        -rw-------  1 a123456  staff  1301 11 26 11:09 /Users/a123456/.ssh/known_hosts
    cat  ~/.ssh/known_hosts
        gitee.com,121.22.35.68 ecdsa-sha2-nistp256 6EmI1uaRI6HiEPtPtJHE=
        142.17.145.18 ecdsa-sha2-nistp256 lS5SqU4uonGEmnfQyXNuk7TuaBMxUmW9OqtXdYJE0pv/66sgtA=
        [129.115.193.16]:10022 ecdsa-sha2-nistp256 QKxwD410/+AIo6IObDWg=



ssh user@142.17.145.18
报错
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the ECDSA key sent by the remote host is
    SHA256:SuTz5dol3p7u6tCRz9+3uDgQBpy7kkLzI2T22/IusOU.
    Please contact your system administrator.
    Add correct host key in /Users/a123456/.ssh/known_hosts to get rid of this message.
    Offending ECDSA key in /Users/a123456/.ssh/known_hosts:6
    ECDSA host key for 82.157.6.144 has changed and you have requested strict checking.
    Host key verification failed.

删除known_hosts指定主机信息
    方法一：
        rm -rf ~/.ssh/known_hosts
        缺点：把其他正确的公钥信息也删除，下次链接要全部重新经过认证

    方法二：
        vi ~/.ssh/known_hosts
        删除对应ip的相关rsa信息

    方法三：（推荐）
        清除旧的公钥信息
            ssh-keygen -R 142.17.145.18
        带端口号的要使用以下格式来执行
            ssh-keygen -R  [129.115.193.16:10022]


























